Process Oriented Design for Java: Concurrency for All
نویسنده
چکیده
Concurrency is thought to be an advanced topic – much harder than serial computing which, therefore, needs to be mastered first. This paper contends that this tradition is wrong, which has radical implications for the way we educate people in Computer Science – and on how we apply what we have learnt. A process-oriented design pattern for concurrency is presented with a specific binding for Java. It is based on the algebra of Communicating Sequential Processes (CSP) [1, 2, 3] as captured by the JCSP [4, 5, 6, 7, 8, 9] library of Java classes. No mathematical sophistication is needed to master it. The user gets the benefit of the sophistication underlying CSP simply by using it. Those benefits include the simplification wins we always thought concurrency should generate. Although the Java binding is new, fifteen years of working with students at Kent have shown that the ideas within process-oriented design can be quickly absorbed and applied. Getting the ideas across as soon as possible pays dividends – the later it's left, the more difficult it becomes to wean people off serial ways of thought that fit the world so badly. Concurrency for all (and for everyday use) in the design and implementation of most kinds of computer system is both achievable and necessary.
منابع مشابه
Design and Implementation Issues for Object-Oriented Concurrency
This paper describes design and implementation issues for introducing concurrency to object-oriented programming. Designing a concurrency class library along with an object-oriented concurrent program design method is presented as the prefered way to extend an existing object-oriented language. A set of classes designed to facilitate concurrent programming using the sequential object-oriented l...
متن کاملModeling Java Threads in UML
Modern programming languages such as Java facilitate the use of concurrent threads of control within computer applications. Considering concurrency is an important prerequisite for the adequate realization of object-oriented ideas, since real world objects usually operate in parallel. This brings up the requirement to be able to express concurrency issues already in design models, which precede...
متن کاملApplication of Java-based Pointcuts in Aspect Oriented Programming (AOP) for Data Race Detection
Wide applicability of concurrent programming practices in developing various software applications leads to different concurrency errors amongst which data race is the most important. Java provides greatest support for concurrent programming by introducing various concurrency packages. Aspect oriented programming (AOP) is modern programming paradigm facilitating the runtime interception of even...
متن کاملApplication of Java-based Pointcuts in Aspect Oriented Programming (AOP) for Data Race Detection
Wide applicability of concurrent programming practices in developing various software applications leads to different concurrency errors amongst which data race is the most important. Java provides greatest support for concurrent programming by introducing various concurrency packages. Aspect oriented programming (AOP) is modern programming paradigm facilitating the runtime interception of even...
متن کاملThe SCOOP Concurrency Model in Java-like Languages
SCOOP is a minimal extension to the sequential object-oriented programming model for concurrency. The extension consists of one keyword (separate) that avoids explicit thread declarations, synchronized blocks, explicit waits, and eliminates data races and atomicity violations by construction, through a set of compiler rules. SCOOP was originally described for the Eiffel programming language. Th...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2000